1. Field of the Invention
Embodiments of the invention generally relate to managing network connections in a storage area network (SAN).
2. Description of the Related Art
As is known, iSCSI is a storage area network protocol that defines how to flow SCSI storage protocol over an IP network. At one end of the network is an iSCSI initiator system, such as a diskless computer. At the other end of the network is an iSCSI target controller, which has physical ports providing access to logical entities called target nodes. The target nodes provide access to storage or other devices attached to the iSCSI target controller. To create an iSCSI session with a target node, an iSCSI initiator port sends a login message to a specific iSCSI target port. The login may succeed or fail. A successful login establishes an active session between the particular initiator port and target port. An iSCSI initiator system may use an active session to access storage associated with the target node. In complex networks, some iSCSI target ports may be reached only by some of the iSCSI initiator ports, and attempts from other iSCSI initiators will fail to establish an active session.
Further, multiple iSCSI sessions may be established between the initiator ports and the target ports. In such a case, a software application running on the initiator system may include support for a session-based MPIO (multipath input/output). The MPIO software coordinates the initiator system's use of multiple iSCSI sessions. Without this coordination, multiple sessions from the initiator system to the same target node could cause the same storage device to appear multiple times (looking like multiple separate devices) on the iSCSI initiator system. This could lead to data integrity issues and initiator system crashes. Thus, the MPIO software allows safe use of multiple sessions to the same target node.
Additionally, the MPIO software may in some cases perform load balancing and failover when there are multiple sessions to the same target node. One technique to increase for load balancing and failover is to allow the initiator system to access a target node via more than one target port. For example, if a target node may be reached via two physical target ports, the initiator system may establish a separate connection to the target node through each such port. Thus, the initiator system may still access the target node upon failure of either of the target ports. A given network topology may be designed with multiple switches, initiator ports, and target ports to eliminate any single point of failure in the network.